#ifndef MYTCPSERVER_H
#define MYTCPSERVER_H
#include<QTcpServer>

#include<QDebug>
#include"mytcpsocket.h"

class RequestTask;

class MyTcpServer : public QTcpServer
{

public slots:
    void deleteClient(MyTcpSocket* mysocket);

public:
    static MyTcpServer& GetInstance();
    void resand(char* strTarName,PDU* pdu);//转发函数,目标用户将PDU发给他(添加好友功能)
    virtual void incomingConnection(qintptr socketDescriptor);//多个客户端连接提示


private:
    QList<MyTcpSocket*> m_TcpSocket;


    MyTcpServer();
    MyTcpServer(const MyTcpServer& Instance);
    MyTcpServer& operator=(const MyTcpServer&);

};

// RequestTask类定义（新增）
/*
RequestTask类是线程池中的工作单元，负责处理客户端发送的请求：

每个客户端请求会创建一个RequestTask对象
该对象被提交到线程池后，会在一个工作线程中执行run()方法
run()方法中实现具体的业务逻辑（如解析消息、数据库操作等）
处理完成后，通过信号taskCompleted将结果发送回主线程
为什么需要这个类？
线程池的工作原理是将任务分发给多个工作线程执行，避免主线程阻塞。在 Qt 中，要使用线程池就需要创建继承自QRunnable的任务类，并实现run()方法。

如果没有这个类，所有客户端请求都将在主线程中处理，当有大量请求时，服务器会变得非常缓慢，甚至无响应。通过引入RequestTask和线程池，服务器可以同时处理多个请求，提高并发能力。
*/


#endif // MYTCPSERVER_H
